home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-08-12 | 35.8 KB | 2,057 lines |
-
- Section Copperlist,code_C
-
- opt c-,o-
-
- move.w #0,divequal
-
- move.l 4.w,a6 ; exec lib
- jsr -132(a6) ; forbid
-
- move.l 4.w,a6
- move.l #200*1000,d0
- move.l #$10001,d1 ; public
- jsr -198(a6)
- move.l d0,unpackspc
-
- lea dlib,a1
- moveq #0,d0
- move.l 4.w,a6
- jsr -$228(a6)
- tst d0
- beq error
- move.l D0,dos ; store address of dos lib
-
- lea glib,a1
- moveq #0,d0
- move.l 4.w,a6
- jsr -$228(a6) ; open lib
- tst d0
- beq error
- move.l D0,graphics ; store address of graphics lib
-
- move.l #40*55,d1
- move.l #logo+64,d0 ; store address of bitplane0
- move.w d0,bitplane0_lo ; into the copper list
- swap d0
- move.w d0,bitplane0_hi
- swap d0
- add.l d1,d0
- move.w d0,bitplane1_lo
- swap d0
- move.w d0,bitplane1_hi
- swap d0
- add.l d1,d0
- move.w d0,bitplane2_lo
- swap d0
- move.w d0,bitplane2_hi
- swap d0
- add.l d1,d0
- move.w d0,bitplane3_lo
- swap d0
- move.w d0,bitplane3_hi
- swap d0
- add.l d1,d0
- move.w d0,bitplane4_lo
- swap d0
- move.w d0,bitplane4_hi
-
- move.l #99*80,d1
- move.l #Scrollpic+32,d0 ; store address of bitplane0
- move.w d0,mplane0_lo ; into the copper list
- swap d0
- move.w d0,mplane0_hi
- swap d0
- add.l d1,d0
- move.w d0,mplane1_lo
- swap d0
- move.w d0,mplane1_hi
- swap d0
- add.l d1,d0
- move.w d0,mplane2_lo
- swap d0
- move.w d0,mplane2_hi
- swap d0
- add.l d1,d0
- move.w d0,mplane3_lo
- swap d0
- move.w d0,mplane3_hi
- swap d0
- add.l d1,d0
- move.w d0,mplane4_lo
- swap d0
- move.w d0,mplane4_hi
-
- lea cmap1+2,a0
- lea cmap2+2,a2
- lea logo,a1
- lea frame,a3
- move.w #31,d0
- setup_cmap1:
- move.w (a1)+,(a0)
- move.w (a3)+,(a2)
- add.l #4,a0
- add.l #4,a2
- dbf d0,setup_cmap1
-
- lea cmap3+2,a4
- lea scrollpic,a5
- move.w #15,d0
- setup_cmap2:
- move.w (a5)+,(a4)
- add.l #4,a4
- dbf d0,setup_cmap2
-
- move.l 4.w,a6
- move.l #scrsize,d0
- move.l #$10002,d1
- jsr -198(a6) ; alloc mem
-
- move.l d0,screen2
- move.l d0,scr2
- add.l #scrsize/2,d0
- move.l d0,scr1
-
- move.l graphics,a6
- add.l #$32,a6
- move.w #$80,$dff096 ; dma control write
- move.l (a6),old_copper ; store the address of the
- move.l #my_copper,(a6) ; old copperlist
- move.w #$8080,$dff096 ; dma control write
- move.w #$8010,$dff09a ; interupt enable bits
- move.l $6c.w,old_interupt ; store old level 3 int
- move.l #new_interupt,$6c.w ; store my routine
- ; into level 3 int
-
-
- bsr show_equals
-
- bsr waitmouse
-
- exit:
-
- bsr mt_end
-
- move.l old_interupt,$6c.w ; resore old level 3 int
- move.l #$10,$dff09a ; Disable Level 3 Interupt
- move.l graphics,a6
- add.l #$32,a6
- move.w #$0080,$dff096
- move.l old_copper,(a6) ; restore old copper list
- move.w #$8080,$dff096
- move.l graphics,a1
-
- move.l 4.w,a6
- move.l screen2,a1
- move.l #scrsize,d0
- jsr -210(a6)
-
- move.l 4.w,a6
- jsr -138(a6) ; permit
-
- move.l 4.w,a6
- move.l unpackspc,a1
- move.l #200*1000,d0
- jsr -210(a6)
-
- error: moveq #0,d0 ; return code=0 (ie mellow)
- rts
-
- waitmouse:
-
- cmp.b #95,$bfec01
- beq do_f1
-
- cmp.b #93,$bfec01
- beq do_f2
-
- cmp.b #91,$bfec01
- beq do_f3
-
- cmp.b #89,$bfec01
- beq do_f4
-
- cmp.b #87,$bfec01
- beq do_f5
-
- cmp.b #85,$bfec01
- beq do_f6
-
- cmp.b #83,$bfec01
- beq do_f7
-
- cmp.b #81,$bfec01
- beq do_f8
-
- cmp.b #79,$bfec01
- beq do_f9
-
- cmp.b #77,$bfec01
- beq do_f10
-
- cmp.b #117,$bfec01
- bne waitmouse
-
- rts
-
- do_f1: move.l #lf1,loadme
- bsr do_loader
- move.l cheat+0,d0
- bra do_cheat
-
- do_f2: move.l #lf2,loadme
- bsr do_loader
- move.l cheat+4,d0
- bra do_cheat
-
- do_f3: move.l #lf3,loadme
- bsr do_loader
- move.l cheat+8,d0
- bra do_cheat
-
- do_f4: move.l #lf4,loadme
- bsr do_loader
- move.l cheat+12,d0
- bra do_cheat
-
- do_f5: move.l #lf5,loadme
- bsr do_loader
- move.l cheat+16,d0
- bra do_cheat
-
- do_f6: move.l #lf6,loadme
- bsr do_loader
- move.l cheat+20,d0
- bra do_cheat
-
- do_f7: move.l #lf7,loadme
- bsr do_loader
- move.l cheat+24,d0
- bra do_cheat
-
- do_f8: move.l #lf8,loadme
- bsr do_loader
- move.l cheat+28,d0
- bra do_cheat
-
- do_f9: move.l #lf9,loadme
- bsr do_loader
- move.l cheat+32,d0
- bra do_cheat
-
- do_f10: move.l #lf10,loadme
- bsr do_loader
- move.l cheat+36,d0
- bra do_cheat
-
- even
- lf1: dc.b "df0:mod.adamski",0
- even
- lf2: dc.b "df0:mod.from",0
- even
- lf3: dc.b "df0:mod.hb",0
- even
- lf4: dc.b "df0:mod.is",0
- even
- lf5: dc.b "df0:mod.itchy",0
- even
- lf6: dc.b "df0:mod.midnight-dreams",0
- even
- lf7: dc.b "df0:mod.phantom",0
- even
- lf8: dc.b "df0:mod.speed-dreamer",0
- even
- lf9: dc.b "df0:mod.switch625",0
- even
- lf10: dc.b "df0:mod.walking-in-space",0
- even
-
- loadme: dc.l 0
- file: dc.l 0
- counter: dc.l 0
- unpackspc: dc.l 0
-
- maxmin:
-
- move.l #-1,calc
- move.l #0,finished
- move.w #$f0f,finding
- move.l #0,maxequal
- move.l #99999,minequal
-
- move.l #waste,dff000
- move.l #waste,dff0a0
- move.l #waste,dff0b0
- move.l #waste,dff0c0
- move.l #waste,dff0d0
-
- bsr mt_init
- bsr mt_end
-
- find_maxmin:
- bsr mt_music
- cmp.l #-1,finished
- bne.s find_maxmin
-
- move.l #0,calc
-
- move.l #$dff000,dff000
- move.l #$dff0a0,dff0a0
- move.l #$dff0b0,dff0b0
- move.l #$dff0c0,dff0c0
- move.l #$dff0d0,dff0d0
-
- rts
-
-
- do_loader:
-
- move.l #$19cce7a2,mt_data
- bsr mt_end
-
- fin_equals:
- clr.l d0
- or.b equals+00,d0
- or.b equals+01,d0
- or.b equals+02,d0
- or.b equals+03,d0
- or.b equals+04,d0
- or.b equals+05,d0
- or.b equals+06,d0
- or.b equals+07,d0
- or.b equals+08,d0
- or.b equals+09,d0
- or.b equals+10,d0
- or.b equals+11,d0
- or.b equals+12,d0
- or.b equals+13,d0
- cmp.b #0,d0
- bgt.s fin_equals
-
- move.l #1,use_equals
-
- bsr show_equals
-
- bsr blitting
-
- move.l 4.w,a6
- jsr -138(a6) ; permit
-
- move.l dos,a6
- move.l loadme,d1
- move.l #1005,d2
- jsr -30(a6)
- move.l d0,file
- cmp.l #0,d0
- bne.s file_ok
-
- move.l #0,counter
- error1: move.w $dff006,$dff180
- cmp.l #100,counter
- bne.s error1
- bra error2
-
-
- file_ok:
- move.l file,d1
- move.l unpackspc,d2
- move.l #200*1000,d3
- jsr -42(a6)
- move.l d0,length
-
- move.l file,d1
- jsr -36(a6)
-
- move.l unpackspc,a0
- add.l length,a0 ; longword at end of packed buffer
- move.l #mt_data,a1 ; address to unpack to (start)
- move.l #0,a2 ; ??? dunno
- move.l #mt_data,a3 ; address to unpack to (start)
-
- bsr unpack
-
- move.l 4.w,a6
- jsr -132(a6) ; forbid
-
- bsr maxmin
- error2:
- bsr mt_init
-
- move.l #frame+64,blank
-
- move.l #0,use_equals
-
- rts
-
- do_cheat:
- cmp.l #0,d0
- beq.s divequ_ok
-
- move.w d0,divequal
-
- divequ_ok:
- bra waitmouse
-
- unpack:
- move.l #0,len
- move.w #$f0f,colour
-
- LEA ppBD8(PC),A5
- MOVEQ #3,D6
- MOVEQ #1,D4
- MOVEQ #7,D7
- MOVEQ #1,D5
- MOVEA.L A3,A2
- MOVE.L -(A0),D1
- TST.B D1
- BEQ.S ppB52
- BSR.S ppB76
- SUB.L D4,D1
- LSR.L D1,D5
- ppB52 LSR.L #8,D1
- ADDA.L D1,A3
- ppB56 BSR.S ppB76
- BCS.S ppB98
- MOVEQ #0,D2
- ppB5C MOVE.W D4,D0
- BSR.S ppB84
- ADD.W D1,D2
- CMP.W D6,D1
- BEQ.S ppB5C
- ppB66 MOVEQ #7,D0
- BSR.S ppB84
- MOVE.B D1,-(A3)
- add.l #1,len
- DBF D2,ppB66
- CMPA.L A3,A2
- BCS.S ppB98
- RTS
-
-
- ppB76 LSR.L D4,D5
- BEQ.S ppB7C
- RTS
- ppB7C MOVE.L -(A0),D5
- ROXR.L D4,D5
- RTS
- ppB82 SUB.W D4,D0
- ppB84 MOVEQ #0,D1
- ppB86 LSR.L D4,D5
- BEQ.S ppB92
- ppB8A ROXL.L D4,D1
- DBF D0,ppB86
- RTS
- ppB92 MOVE.L -(A0),D5
- ROXR.L D4,D5
- BRA.S ppB8A
- ppB98 MOVE.W D4,D0
- BSR.S ppB84
- MOVEQ #0,D0
- MOVE.B 0(A5,D1.W),D0
- MOVE.W D1,D2
- CMP.W D6,D2
- BNE.S ppBBE
- BSR.S ppB76
- BCS.S ppBAE
- MOVEQ #7,D0
- ppBAE BSR.S ppB82
- MOVE.W D1,D3
- ppBB2 MOVEQ #2,D0
- BSR.S ppB84
- ADD.W D1,D2
- CMP.W D7,D1
- BEQ.S ppBB2
- BRA.S ppBC2
- ppBBE BSR.S ppB82
- MOVE.W D1,D3
- ppBC2 ADD.W D4,D2
- ppBC4 MOVE.B 0(A3,D3.W),-(A3)
- add.l #1,len
- DBF D2,ppBC4
- eor.w #$f0f,colour
- move.w colour,unpackcolour ; background colour
- CMPA.L A3,A2
- BCS ppB56
- RTS
-
- ppBD8 DC.L $90A0C0D,$4E468082 ; needs this one
-
- colour: dc.l 0
- len: dc.l 0
- length: dc.l 0
-
- pause: move.l #0,delay3
- pause2: move.l delay3,d0
- cmp.l #1,d0
- blt.s pause2
- rts
-
- new_interupt:
- movem.l d0-d7/a0-a6,-(sp)
-
-
- wait_irq:
- and.w #$10,$dff01e ; check for vblank
- beq no_music
- move.w #$10,$dff09c
-
- add.l #1,counter
-
- bsr scroller_up
-
- sub.l #1,delay
- bpl.s not_now
-
- move.l #1,delay
-
- cmp.l #0,use_equals
- bne.s not_playing
-
- bsr show_equals
-
- not_now:
- cmp.l #$19cce7a2,mt_data
- beq.s not_playing
- bsr mt_music
- not_playing:
-
- no_music:
- movem.l (sp)+,d0-d7/a0-a6
-
- dc.w $4ef9 ; jmp
- old_interupt: dc.l 0 ; the old int lev 3
-
- scroller_up:
-
- sub.l #2,delay2
- bpl no_scrup
-
- move.l #6,delay2
-
- lea scrollpic+32,a0
- add.l #(80*4)+68,a0
- lea man1,a1
- move.l mannum,d0
- mulu #32*8*4,d0
- add.l d0,a1
-
- bsr blitting
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #$ffff,$dff044 ; blit first word mask source a
- move.w #$ffff,$dff046 ; blit last word mask source a
- move.w #0,$dff064 ; modulo for source a
- move.w #(%1001*256)+$f0,$dff040
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #72,$dff066 ; modulo for dest
- Move.w #(32*64)+4,$dff058 ; blit height,width
- bsr blitting
-
-
- add.l #99*80,a0
- add.l #32*8,a1
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #$ffff,$dff044 ; blit first word mask source a
- move.w #$ffff,$dff046 ; blit last word mask source a
- move.w #0,$dff064 ; modulo for source a
- move.w #(%1001*256)+$f0,$dff040
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #72,$dff066 ; modulo for dest
- Move.w #(32*64)+4,$dff058 ; blit height,width
- bsr blitting
-
- add.l #99*80,a0
- add.l #32*8,a1
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #$ffff,$dff044 ; blit first word mask source a
- move.w #$ffff,$dff046 ; blit last word mask source a
- move.w #0,$dff064 ; modulo for source a
- move.w #(%1001*256)+$f0,$dff040
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #72,$dff066 ; modulo for dest
- Move.w #(32*64)+4,$dff058 ; blit height,width
- bsr blitting
-
- add.l #99*80,a0
- add.l #32*8,a1
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #$ffff,$dff044 ; blit first word mask source a
- move.w #$ffff,$dff046 ; blit last word mask source a
- move.w #0,$dff064 ; modulo for source a
- move.w #(%1001*256)+$f0,$dff040
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #72,$dff066 ; modulo for dest
- Move.w #(32*64)+4,$dff058 ; blit height,width
- bsr blitting
-
- add.l #1,mannum
- cmp.l #6,mannum
- blt man_ok
-
- move.l #56,delay2
- move.l #0,mannum
-
- man_ok:
-
- sub.l #1,scrup
- bpl.s scrup_ok
-
- move.l #5,scrup
-
- move.l scrolltext_ptr,a1
- cmp.b #0,(a1)
- bne.s scroller_mellow
-
- move.l #scrolltext,a1
- move.l a1,scrolltext_ptr
-
-
- scroller_mellow:
- lea scrollpic+32,a2
- add.l #(99*80*3),a2
- add.l #(99*80),a2
- bsr blit_message
-
- no_scrup:
-
- rts
-
- scrup_ok:
-
- clr.l d7
-
- lea scrollpic+32,a2
- add.l #(99*80*3)+34+(14*80),a2
- move.l a2,a1
- add.l #160,a1
-
- Move.l a2,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #$ffff,$dff044 ; blit 1st word mask source a
- move.w #$ffff,$dff046 ; blit last word mask source a
- move.w #50,$dff064 ; blit modulo for source a
- or.w #(%1001*256)+$f0,d7
- move.w d7,$dff040 ; blit cont reg 0
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #50,$dff066 ; modulo for dest
- Move.w #(93*64)+15,$dff058 ; blit height,width
-
- jsr blitting
-
- rts
-
- blit_message:
-
- movem.l d0-d7/a2-a6,-(sp)
-
- move.l a1,a6
- clr.b d0
- moveq.l #-1,d1
-
- blit_message_loop1:
-
- addq.l #1,d1
- move.b (a6),d0
- addq #1,a6
- cmp.b #0,d0
- bne.s blit_message_loop1
-
- move.l a6,scrolltext_ptr
-
- move.l a2,midadd
- move.w d1,d5
-
- ;addq.l #1,d1
- ;divu #2,d1
- ;and.l #$ff,d1
- ;moveq.l #18,d6 ; centre
- ;sub.l d1,d6
- ;add.l d6,a2
-
- add.l #34,a2 ; lh edge of scrolled
-
- move.l a2,d2
- and.l #$fffffffe,d2
- move.l a2,d3
- and.l #1,d3
- move.l d2,a2
-
- move.w #12,d6
- cmp.l #1,d3
- beq.s cont_blit_message
-
- add.w #12,mid
- subq.l #2,midadd
-
- cont_blit_message:
-
- move.w d6,d7
- mulu #8192,d7
-
- subq.w #4,d6
- cmp.w #4,d6
- bne.s other_half
-
- move.w #12,d6
- add.l #160,a2
-
- other_half:
-
- sub.l #80,a2
- clr.w d0
- lea font,a0
- move.b (a1),d0
- addq.l #1,a1
- cmp.b #0,d0
- bne.s mess_is_ok
-
- movem.l (sp)+,d0-d7/a2-a6
-
- dont_centre:
- rts
-
-
- mess_is_ok:
- sub #32,d0
- mulu #16,d0
- add d0,a0
-
- Move.l a2,$dff054 ; dest mem d
- Move.l a0,$dff050 ; source mem a
- move.l a2,$dff048 ; source mem c
- Move.w #$ffff,$dff044 ; blit 1st word mask source a
- move.w #$ffff,$dff046 ; blit last word mask source a
- move.w #0,$dff064 ; blit modulo for source a
- move.w #78,$dff060 ; blit modulo for source c
- or.w #(%1011*256)+$fa,d7
- move.w d7,$dff040 ; blit cont reg 0
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #78,$dff066 ; modulo for dest
- Move.w #(8*64)+1,$dff058 ; blit height,width
-
- jsr blitting
-
- addq.l #1,a2
- bra cont_blit_message
-
-
-
- show_equals:
-
- move.l scr1,a0
- add.l #40,a0
- move.l blank,a1
-
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #$ffff,$dff044 ; blit first word mask source a
- move.w #$ffff,$dff046 ; blit last word mask source a
- move.w #0,$dff064 ; modulo for source a
- move.w #(%1001*256)+$f0,$dff040
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #0,$dff066 ; modulo for dest
- Move.w #(98*64)+20,$dff058 ; blit height,width
- bsr blitting
-
- add.l #40*100,a0
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #(98*64)+20,$dff058 ; blit height,width
- bsr blitting
-
- add.l #40*100,a0
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #(98*64)+20,$dff058 ; blit height,width
- bsr blitting
-
- add.l #40*100,a0
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #(98*64)+20,$dff058 ; blit height,width
- bsr blitting
-
- add.l #40*100,a0
- Move.l a0,$dff054 ; dest mem d
- Move.l a1,$dff050 ; source mem a
- Move.w #(98*64)+20,$dff058 ; blit height,width
- bsr blitting
-
-
- lea equals,a1
- lea fades,a4
- move.l #1,d2
- show_equal_loop1:
-
- clr.l d1
- move.b (a1,d2),d1
- move.b (a4,d2),d7
- add.b d7,(a1,d2)
- bpl.s equal_zero
- move.b #0,(a1,d2)
- equal_zero:
-
- add.l #1,d2
- cmp.l #14,d2
- blt show_equal_loop1
-
- move.l scr1,a0
- add.l #64*40,a0
- add.l #1,a0
- lea mc1a,a1
- lea equals+1,a2
- lea fades+1,a3
- bsr all_blit
-
- move.w #11,d0
-
- all_mchars:
-
- add.l #33*4*5*2,a1
- add.l #3,a0
- add.l #1,a2
- bsr all_blit
-
- dbf d0,all_mchars
-
- move.l scr1,a0
- move.l scr2,a1
- move.l a1,scr1
- move.l a0,scr2
-
- move.l scr2,d0
- move.w d0,bplane0_lo
- swap d0
- move.w d0,bplane0_hi
- swap d0
- add.l #40*100,d0
- move.w d0,bplane1_lo
- swap d0
- move.w d0,bplane1_hi
- swap d0
- add.l #40*100,d0
- move.w d0,bplane2_lo
- swap d0
- move.w d0,bplane2_hi
- swap d0
- add.l #40*100,d0
- move.w d0,bplane3_lo
- swap d0
- move.w d0,bplane3_hi
- swap d0
- add.l #40*100,d0
- move.w d0,bplane4_lo
- swap d0
- move.w d0,bplane4_hi
-
- rts
-
- all_blit:
- movem.l d0-d7/a0-a6,-(sp)
-
- clr.l d0
- move.b (a2),d0
- muls #40,d0
- sub.l d0,a0
-
- cmp.l #0,d0
- bne.s normal_chr
- add.l #4*33*5,a1
- normal_chr:
-
- move.l a0,d4
- and.l #$fffffffe,d4
- move.l d4,a4
- move.l a0,d5
- and.l #1,d5
-
- mulu #32768,d5
- or.w #(%1011*256)+$fa,d5
-
- Move.l a4,$dff054 ; dest mem d
- Move.l a4,$dff048 ; source mem c
- Move.l a1,$dff050 ; source mem a
- Move.w #$ffff,$dff044 ; blit first word mask source a
- move.w #$ff00,$dff046 ; blit last word mask source a
- move.w #0,$dff064 ; modulo for source a
- Move.w #36,$dff060 ; modulo for source c
- move.w d5,$dff040
- move.w #0,$dff042 ; blit cont reg 1
- Move.w #36,$dff066 ; modulo for dest d
- Move.w #(33*64)+2,$dff058 ; blit height,width
-
- bsr blitting
-
- add.l #40*100,a4
- add.l #4*33,a1
- Move.l a4,$dff054 ; dest mem d
- Move.l a4,$dff048 ; source mem c
- Move.l a1,$dff050 ; source mem a
- Move.w #(33*64)+2,$dff058 ; blit height,width
- bsr blitting
-
- add.l #40*100,a4
- add.l #4*33,a1
- Move.l a4,$dff054 ; dest mem d
- Move.l a4,$dff048 ; source mem c
- Move.l a1,$dff050 ; source mem a
- Move.w #(33*64)+2,$dff058 ; blit height,width
- bsr blitting
-
- add.l #40*100,a4
- add.l #4*33,a1
- Move.l a4,$dff054 ; dest mem d
- Move.l a4,$dff048 ; source mem c
- Move.l a1,$dff050 ; source mem a
- Move.w #(33*64)+2,$dff058 ; blit height,width
- bsr blitting
-
- add.l #40*100,a4
- add.l #4*33,a1
- Move.l a4,$dff054 ; dest mem d
- Move.l a4,$dff048 ; source mem c
- Move.l a1,$dff050 ; source mem a
- Move.w #(33*64)+2,$dff058 ; blit height,width
- bsr blitting
-
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- print_num:
- movem.l d0-d7/a0-a6,-(sp)
-
- cmp.l #-1,calc
- bne.s normal_num
-
- clr.l d0
- move.w (a6),d0
-
- cmp.w #0,d0
- beq.s skip_num
-
- cmp.l maxequal,d0
- blt.s not_max
- move.l d0,maxequal
- not_max:
- cmp.l minequal,d0
- bgt.s not_min
-
- move.l d0,minequal
- not_min:
-
- move.l maxequal,d0
- move.l minequal,d1
-
- sub.l d1,d0
- divu #16,d0 ; should by 13 - expands range!
-
- move.w d0,divequal
- skip_num
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- normal_num:
- clr.l d0
- move.w (a6),d0
-
- sub.l minequal,d0 ; no notes less than 100!
- move.w divequal,d1
- divu divequal,d0 ; smooth note - ie 13 equalisers
- cmp.w #13,d0
- blt.s equ_too_big
-
- move.w #13,d0
-
- equ_too_big:
- cmp.w #1,d0
- bgt.s equ_too_small
-
- move.w #1,d0
-
- equ_too_small:
-
- lea equals,a0
- cmp.b #33,(a0,d0)
- blt.s equ_skip1
- move.b #33,(a0,d0)
- equ_skip1:
- add.b #30,(a0,d0)
-
- lea fades,a0
- move.b #-2,(a0,d0)
-
- clr.l d0
-
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- blitting:
- btst #6,$dff002
- bne.s blitting
-
- rts
-
-
-
- Mt_Init:Lea Mt_Data,a0
- Move.l a0,a1
- Add.l #$3b8,a1
- Moveq #$7f,d0
- Moveq #0,d1
- Mt_Loop Move.l d1,d2
- Subq.w #1,d0
- Mt_Lop2 Move.b (a1)+,d1
- Cmp.b d2,d1
- Bgt.s Mt_Loop
- Dbf d0,Mt_Lop2
- Addq.b #1,d2
-
- Lea Mt_SampleStarts,a1
- Asl.l #8,d2
- Asl.l #2,d2
- Add.l #$43c,d2
- Add.l a0,d2
- Move.l d2,a2
- Moveq #$1e,d0
- Mt_Lop3 Move.l #0,(a2)
- Move.l a2,(a1)+
- Moveq #0,d1
- Move.w 42(a0),d1
- Asl.l #1,d1
- Add.l d1,a2
- Add.l #$1e,a0
- Dbf d0,Mt_Lop3
-
- Or.b #$2,$bfe001
- Move.b #$6,Mt_Speed
- Move.b #$3f,Mt_Voice1+$12
- Move.b #$3f,Mt_Voice2+$12
- Move.b #$3f,Mt_Voice3+$12
- Move.b #$3f,Mt_Voice4+$12
-
- Move.w #0,$dff0a8
- Move.w #0,$dff0b8
- Move.w #0,$dff0c8
- Move.w #0,$dff0d8
- Clr.b Mt_SongPos
- Clr.b Mt_Counter
- Clr.w Mt_PattPos
- Rts
-
- Mt_End Move.w #0,$dff0a8
- Move.w #0,$dff0b8
- Move.w #0,$dff0c8
- Move.w #0,$dff0d8
- Move.w #$f,$dff096
- Moveq.l #0,d0
- Rts
-
- Mt_Music
- Movem.l d0-d4/a0-a3/a5-a6,-(a7)
- Lea Mt_Data,a0
- Addq.b #$1,Mt_Counter
- Move.b Mt_Counter,d0
-
- cmp.l #-1,calc
- beq.s mt_playit
-
-
- cmp.b Mt_speed,d0
- Blt.s Mt_NoNew
- mt_playit
- Clr.b Mt_Counter
- Bra Mt_GetNew
- Mt_NoNew
-
- Lea Mt_Voice1,a6
- move.l dff0a0,a5
- Bsr Mt_CheckCom
- Lea Mt_Voice2,a6
- move.l dff0b0,a5
- Bsr Mt_CheckCom
- Lea Mt_Voice3,a6
- move.l dff0c0,a5
- Bsr Mt_CheckCom
- Lea Mt_Voice4,a6
- move.l dff0d0,a5
- Bsr Mt_CheckCom
- Bra Mt_Endr
-
- Mt_Arpeggio
- Moveq.l #0,d0
- Move.b Mt_Counter,d0
- Divs #$3,d0
- Swap d0
- Cmp.w #$0,d0
- Beq.s Mt_Arp2
- Cmp.w #$2,d0
- Beq.s Mt_Arp1
- Moveq.l #0,d0
- Move.b $3(a6),d0
- Lsr.b #4,d0
- Bra.s Mt_Arp3
-
- Mt_Arp1 Moveq.l #0,d0
- Move.b $3(a6),d0
- And.b #$f,d0
- Bra.s Mt_Arp3
- Mt_Arp2 Move.w $10(a6),d2
- Bra.s Mt_Arp4
- Mt_Arp3 Asl.w #1,d0
- Moveq.l #0,d1
- Move.w $10(a6),d1
- Lea Mt_Periods,a0
- Moveq #$24,d7
- Mt_ArpLoop
- Move.w (a0,d0.w),d2
- Cmp.w (a0),d1
- Bge.s Mt_Arp4
- Addq.l #2,a0
- Dbf d7,Mt_ArpLoop
- Rts
- Mt_Arp4 Move.w d2,$6(a5)
- Rts
-
- Mt_GetNew
- Lea Mt_Data,a0
- Move.l a0,a3
- Move.l a0,a2
- Add.l #$c,a3
- Add.l #$3b8,a2
- Add.l #$43c,a0
-
- Moveq.l #0,d0
- Move.l d0,d1
- Move.b Mt_SongPos,d0
-
-
- Move.b (a2,d0.w),d1
- Asl.l #8,d1
- Asl.l #2,d1
- Add.w Mt_PattPos,d1
- Clr.w Mt_DmaCon
- move.l dff0a0,a5
- Lea Mt_Voice1,a6
- Move.l #Mt_Instrument+0,a4
- Bsr.s Mt_PlayVoice
- move.l dff0b0,a5
- Lea Mt_voice2,a6
- Move.l #Mt_Instrument+4,a4
- Bsr.s Mt_PlayVoice
- move.l dff0c0,a5
- Lea Mt_Voice3,a6
- Move.l #Mt_Instrument+8,a4
- Bsr.s Mt_PlayVoice
- move.l dff0d0,a5
- Lea Mt_Voice4,a6
- Move.l #Mt_Instrument+12,a4
- Bsr.s Mt_PlayVoice
- Bra Mt_SetDma
-
- Mt_PlayVoice
- Move.l (a0,d1.l),(a6)
- Addq.l #4,d1
- Moveq.l #0,d2
- Move.b $2(a6),d2
- And.b #$f0,d2
- Lsr.b #4,d2
- Move.b (a6),d0
- And.b #$f0,d0
- Or.b d0,d2
-
- cmp.l #-1,calc
- beq.s mt_playnote
-
- Tst.b d2
- Beq Mt_SetRegs
-
- mt_playnote
- Moveq #0,d3
-
- bsr print_num ; (a6) = note played
-
- Lea Mt_SampleStarts,a1
- Move.l d2,d4
- Subq.l #$1,d2
- Asl.l #2,d2
-
- Move.l d2,(a4)
-
- Mulu #$1e,d4
- Move.l (a1,d2.l),$4(a6)
- Move.w (a3,d4.l),$8(a6)
- Move.w $2(a3,d4.l),$12(a6)
- Move.w $4(a3,d4.l),d3
- Tst.w d3
- Beq.s Mt_NoLoop
-
- cmp.l #-1,calc
- beq.s mt_setregs
-
- Move.l $4(a6),d2
- Asl.w #1,d3
- Add.l d3,d2
- Move.l d2,$a(a6)
- Move.w $4(a3,d4.l),d0
- Add.w $6(a3,d4.l),d0
- Move.w d0,8(a6)
- Move.w $6(a3,d4.l),$e(a6)
- Move.w $12(a6),$8(a5)
- Bra.w Mt_SetRegs
- Mt_NoLoop
-
- cmp.l #-1,calc
- beq.s mt_setregs
-
- Move.l $4(a6),d2
- Add.l d3,d2
- Move.l d2,$a(a6)
- Move.w $6(a3,d4.l),$e(a6)
- Move.w $12(a6),$8(a5)
-
- Mt_SetRegs
- Move.w (a6),d0
- And.w #$fff,d0
- Beq Mt_CheckCom2
- Move.b $2(a6),d0
- And.b #$F,d0
- Cmp.b #$3,d0
- Bne.s Mt_SetPeriod
- Bsr Mt_SetMyPort
- Bra Mt_checkcom2
- Mt_SetPeriod
- Move.w (a6),$10(a6)
- And.w #$fff,$10(a6)
- Move.w $14(a6),d0
- Move.w d0,$dff096
- Move.b #0,$1b(a6)
-
- cmp.l #-1,calc
- beq mt_checkcom
-
- Move.l $4(a6),(a5)
- Move.w $8(a6),$4(a5)
- Move.w $10(a6),d0
- And.w #$fff,d0
- Move.w d0,$6(a5)
- Move.w $14(a6),d0
- Or.w d0,Mt_DmaCon
- Bra Mt_CheckCom2
-
- Mt_SetDma
-
- cmp.l #-1,calc
- beq mt_wai3
-
- Move.w #$12c,d0
- Mt_Wait Dbf d0,Mt_Wait
- Move.w Mt_DmaCon,d0
- Or.w #$8000,d0
- Move.w d0,$dff096
- Move.w #$12c,d0
-
- cmp.l #-1,calc
- beq mt_wai3
-
- Mt_Wai2 Dbf d0,Mt_Wai2
- move.l dff000,a5
- Lea Mt_Voice4,a6
- Move.l $a(a6),$d0(a5)
- Move.w $e(a6),$d4(a5)
- Lea Mt_Voice3,a6
- Move.l $a(a6),$c0(a5)
- Move.w $e(a6),$c4(a5)
- Lea Mt_voice2,a6
- Move.l $a(a6),$b0(a5)
- Move.w $e(a6),$b4(a5)
- Lea Mt_voice1,a6
- Move.l $a(a6),$a0(a5)
- Move.w $e(a6),$a4(a5)
-
- mt_wai3:
-
- Add.w #$10,Mt_PattPos
- Cmp.w #$400,Mt_PattPos
- Bne.s Mt_Endr
- Mt_Nex Clr.w Mt_PattPos
- Clr.b Mt_Break
- Addq.b #1,Mt_SongPos
- And.b #$7f,Mt_SongPos
- Move.b Mt_SongPos,d1
- Cmp.b Mt_Data+$3b6,d1
- Bne.s Mt_Endr
-
- move.l #-1,finished
- Clr.b Mt_SongPos ; module end!
-
- Mt_Endr Tst.b Mt_Break
- Bne.s Mt_Nex
- Movem.l (a7)+,d0-d4/a0-a3/a5-a6
- Rts
-
- Mt_SetMyPort
- Move.w (a6),d2
- And.w #$fff,d2
- Move.w d2,$18(a6)
- Move.w $10(a6),d0
- Move.b #0,$16(a6)
- Cmp.w d0,d2
- Beq.s Mt_ClrPort
- Bge.s Mt_Rt
- Move.b #$1,$16(a6)
- Rts
- Mt_ClrPort
- Move.w #0,$18(a6)
- Mt_Rt Rts
-
- Mt_MyPort
- Move.b $3(a6),d0
- Beq.s Mt_MySlide
- Move.b d0,$17(a6)
- Move.b #0,$3(a6)
- Mt_MySlide
- Tst.w $18(a6)
- Beq.s Mt_Rt
- Moveq.l #0,d0
- Move.b $17(a6),d0
- Tst.b $16(a6)
- Bne.s Mt_MySub
- Add.w d0,$10(a6)
- Move.w $18(a6),d0
- Cmp.w $10(a6),d0
- Bgt.s Mt_MyOK
- Move.w $18(a6),$10(a6)
- Move.w #0,$18(a6)
- Mt_MyOK Move.w $10(a6),$6(a5)
- Rts
- Mt_MySub
- Sub.w d0,$10(a6)
- Move.w $18(a6),d0
- Cmp.w $10(a6),d0
- Blt.s Mt_MyOK
- Move.w $18(a6),$10(a6)
- Move.w #0,$18(a6)
- Move.w $10(a6),$6(a5)
- Rts
-
- Mt_Vib
- Move.b $3(a6),d0
- Beq.s Mt_Vi
- Move.b d0,$1a(a6)
-
- Mt_Vi Move.b $1b(a6),d0
- Lea Mt_Sin,a4
- Lsr.w #$2,d0
- And.w #$1f,d0
- Moveq.l #0,d2
- Move.b (a4,d0.w),d2
- Move.b $1a(a6),d0
- And.w #$f,d0
- Mulu d0,d2
- Lsr.w #$6,d2
- Move.w $10(a6),d0
- Tst.b $1b(a6)
- Bmi.s Mt_VibMin
- Add.w d2,d0
- Bra.s Mt_Vib2
- Mt_VibMin
- Sub.w d2,d0
- Mt_Vib2 Move.w d0,$6(a5)
- Move.b $1a(a6),d0
- Lsr.w #$2,d0
- And.w #$3c,d0
- Add.b d0,$1b(a6)
- Rts
-
- Mt_Nop Move.w $10(a6),$6(a5)
- Rts
-
- Mt_CheckCom
- cmp.l #-1,calc
- bne.s mt_checkedcom
- move.w finding,unpackcolour
- eor.w #$f0f,finding
- mt_checkedcom:
- Move.w $2(a6),d0
- And.w #$fff,d0
- Beq.s Mt_Nop
- Move.b $2(a6),d0
- And.b #$f,d0
- Tst.b d0
- Beq Mt_Arpeggio
- Cmp.b #$1,d0
- Beq.s Mt_PortUp
- Cmp.b #$2,d0
- Beq Mt_PortDown
- Cmp.b #$3,d0
- Beq Mt_MyPort
- Cmp.b #$4,d0
- Beq Mt_Vib
- Move.w $10(a6),$6(a5)
- Cmp.b #$a,d0
- Beq.s Mt_VolSlide
- Rts
-
- Mt_VolSlide
- Moveq #0,d0
- Move.b $3(a6),d0
- Lsr.b #4,d0
- Tst.b d0
- Beq.s Mt_VolDown
- Add.b d0,$13(a6)
- Cmp.b #$3f,$13(a6)
- Ble.s Mt_Vol2
- Move.b #$3f,$13(a6)
- Mt_Vol2 Move.w $12(a6),$8(a5)
- Rts
-
- Mt_VolDown
- Moveq #0,d0
- Move.b $3(a6),d0
- And.b #$f,d0
- Sub.b d0,$13(a6)
- Bpl.s Mt_Vol3
- Move.b #0,$13(a6)
- Mt_Vol3 Move.w $12(a6),$8(a5)
- Rts
-
- Mt_PortUp
- Moveq #0,d0
- Move.b $3(a6),d0
- Sub.w d0,$10(a6)
- Move.w $10(a6),d0
- And.w #$fff,d0
- Cmp.w #$71,d0
- Bpl.s Mt_Por2
- And.w #$f000,$10(a6)
- Or.w #$71,$10(a6)
- Mt_Por2 Move.w $10(a6),d0
- And.w #$fff,d0
- Move.w d0,$6(a5)
- Rts
-
- Mt_PortDown
- Moveq.w #0,d0
- Move.b $3(a6),d0
- Add.w d0,$10(a6)
- Move.w $10(a6),d0
- And.w #$fff,d0
- Cmp.w #$358,d0
- Bmi.s Mt_Por3
- And.w #$f000,$10(a6)
- Or.w #$358,$10(a6)
- Mt_Por3 Move.w $10(a6),d0
- And.w #$fff,d0
- Move.w d0,$6(a5)
- Rts
-
- Mt_CheckCom2
- Move.b $2(a6),d0
- And.b #$f,d0
- Cmp.b #$e,d0
- Beq.s Mt_SetFilt
- Cmp.b #$d,d0
- Beq.s Mt_PattBreak
- Cmp.b #$b,d0
- Beq.s Mt_PosJmp
- Cmp.b #$c,d0
- Beq.s Mt_SetVol
- Cmp.b #$f,d0
- Beq.s Mt_SetSpeed
- Rts
-
- Mt_SetFilt
- Move.b $3(a6),d0
- And.b #$1,d0
- Asl.b #$1,d0
- And.b #$fd,$bfe001
- Or.b d0,$bfe001
- Rts
- Mt_PattBreak ; ** HERE`S THE FIX - IT WAS
- Move.b #1,Mt_Break ; Not.b Mt_Break.
- Rts ; **************************
- Mt_PosJmp
- Move.b $3(a6),d0
- Subq.b #$1,d0
- Move.b d0,Mt_SongPos
- Not.b Mt_Break
- Rts
- Mt_SetVol
- Cmp.b #$3f,$3(a6)
- Ble.s Mt_Vol4
- Move.b #$3f,$3(a6)
- Mt_Vol4 Move.b $3(a6),$8(a5)
- Move.b $3(a6),$13(a6)
- Rts
- Mt_SetSpeed
- Move.b $3(a6),d0
- And.w #$1f,d0
- Beq.s Mt_Rts2
- Clr.b Mt_Counter
- Move.b d0,Mt_Speed
- Mt_Rts2 Rts
-
- Mt_Sin
- Dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
- Dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18
-
- Mt_Periods
- Dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
- Dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
- Dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
- Dc.w $007f,$0078,$0071,$0000,$0000
-
- Mt_Speed Dc.b $6
- Mt_SongPos Dc.b $0
- Mt_PattPos Dc.w $0
- Mt_Counter Dc.b $0
-
- Mt_Break Dc.b $0
- Mt_DmaCon Dc.w $0
- Mt_SampleStarts Dcb.l $1f,0
-
- Mt_Voice1 Dcb.w 10,0
- Dc.w $1
- Dcb.w 3,0
- Dc.w 0 ;new note last time
- Mt_Voice2 Dcb.w 10,0
- Dc.w $2
- Dcb.w 3,0
- Dc.w 0 ;new note last time
- Mt_Voice3 Dcb.w 10,0
- Dc.w $4
- Dcb.w 3,0
- Dc.w 0 ;new note last time
- Mt_Voice4 Dcb.w 10,0
- Dc.w $8
- Dcb.w 3,0
- Dc.w 0 ;new note last time
- Mt_InstCount: dc.b 0
- Mt_Instrument: dcb.l 4,0
-
-
-
- Section copdat,Data_c
-
- my_copper:
- dc.w $100,0
- dc.w $104,0 ; bp control reg
- dc.w $108,0 ; bp modulo - odd
- dc.w $10a,0 ; bp modulo - even
- dc.w $180,0 ; colour 0 to black
- dc.w $102,0
-
- dc.w $120
- spr_1h: dc.w 0,$122
- spr_1l: dc.w 0,$124
- spr_2h: dc.w 0,$126
- spr_2l: dc.w 0,$128
- spr_3h: dc.w 0,$12a
- spr_3l: dc.w 0,$12c
- spr_4h: dc.w 0,$12e
- spr_4l: dc.w 0
-
- dc.w $092,$38 ; bp start horz
- dc.w $094,$d0 ; bp stop horz
- dc.w $08e,$2c50 ; bp window start left
- dc.w $090,$2ce4 ; bp window bot right
-
- dc.w $100,$5200 ; 1 bp - lores
-
- cmap1: dc.w $180,0
- dc.w $182,0
- dc.w $184,0
- dc.w $186,0
- dc.w $188,0
- dc.w $18a,0
- dc.w $18c,0
- dc.w $18e,0
- dc.w $190,0
- dc.w $192,0
- dc.w $194,0
- dc.w $196,0
- dc.w $198,0
- dc.w $19a,0
- dc.w $19c,0
- dc.w $19e,0
- dc.w $1a0,0
- dc.w $1a2,0
- dc.w $1a4,0
- dc.w $1a6,0
- dc.w $1a8,0
- dc.w $1aa,0
- dc.w $1ac,0
- dc.w $1ae,0
- dc.w $1b0,0
- dc.w $1b2,0
- dc.w $1b4,0
- dc.w $1b6,0
- dc.w $1b8,0
- dc.w $1ba,0
- dc.w $1bc,0
- dc.w $1be,0
-
- dc.w $0e0
- bitplane0_hi: dc.w 0
- dc.w $e2
- bitplane0_lo: dc.w 0,$e4
- bitplane1_hi: dc.w 0
- dc.w $e6
- bitplane1_lo: dc.w 0,$e8
- bitplane2_hi: dc.w 0
- dc.w $ea
- bitplane2_lo: dc.w 0,$ec
- bitplane3_hi: dc.w 0
- dc.w $ee
- bitplane3_lo: dc.w 0,$f0
- bitplane4_hi: dc.w 0
- dc.w $f2
- bitplane4_lo: dc.w 0
-
- dc.w $6001,$ff00,$100,$000
- dc.w $6401,$ff00
-
- dc.w $0e0
- bplane0_hi: dc.w 0
- dc.w $e2
- bplane0_lo: dc.w 0,$e4
- bplane1_hi: dc.w 0
- dc.w $e6
- bplane1_lo: dc.w 0,$e8
- bplane2_hi: dc.w 0
- dc.w $ea
- bplane2_lo: dc.w 0,$ec
- bplane3_hi: dc.w 0
- dc.w $ee
- bplane3_lo: dc.w 0,$f0
- bplane4_hi: dc.w 0
- dc.w $f2
- bplane4_lo: dc.w 0
-
- dc.w $100,$5200
-
- cmap2: dc.w $180,0
- dc.w $182,0
- dc.w $184,0
- dc.w $186,0
- dc.w $188,0
- dc.w $18a,0
- dc.w $18c,0
- dc.w $18e,0
- dc.w $190,0
- dc.w $192,0
- dc.w $194,0
- dc.w $196,0
- dc.w $198,0
- dc.w $19a,0
- dc.w $19c,0
- dc.w $19e,0
- dc.w $1a0,0
- dc.w $1a2,0
- dc.w $1a4,0
- dc.w $1a6,0
- dc.w $1a8,0
- dc.w $1aa,0
- dc.w $1ac,0
- dc.w $1ae,0
- dc.w $1b0,0
- dc.w $1b2,0
- dc.w $1b4,0
- dc.w $1b6,0
- dc.w $1b8,0
- dc.w $1ba,0
- dc.w $1bc,0
- dc.w $1be,0
-
- dc.w $c901,$ff00,$180,$000
-
- dc.w $100,$c200 ; 5 bp - lores
-
- dc.w $102,14*16+14 ; hsr
-
- dc.w $108,0 ; bp modulo - odd
- dc.w $10a,0 ; bp modulo - even
-
- dc.w $0e0
- mplane0_hi: dc.w 0
- dc.w $e2
- mplane0_lo: dc.w 0,$e4
- mplane1_hi: dc.w 0
- dc.w $e6
- mplane1_lo: dc.w 0,$e8
- mplane2_hi: dc.w 0
- dc.w $ea
- mplane2_lo: dc.w 0,$ec
- mplane3_hi: dc.w 0
- dc.w $ee
- mplane3_lo: dc.w 0,$f0
- mplane4_hi: dc.w 0
- dc.w $f2
- mplane4_lo: dc.w 0
-
- dc.w $19a,0
-
- cmap3: dc.w $180,0
- dc.w $182,0
- dc.w $184,0
- dc.w $186,0
- dc.w $188,0
- dc.w $18a,0
- dc.w $18c,0
- dc.w $18e,0
- dc.w $190,0
- dc.w $192,0
- dc.w $194,0
- dc.w $196,0
- dc.w $198,0
- dc.w $1fe,0
- dc.w $19c,0
- dc.w $19e,0
- dc.w $1a0,0
- dc.w $1a2,0
- dc.w $1a4,0
- dc.w $1a6,0
- dc.w $1a8,0
- dc.w $1aa,0
- dc.w $1ac,0
- dc.w $1ae,0
- dc.w $1b0,$fff
- dc.w $1b2,$fff
- dc.w $1b4,$fff
- dc.w $1b6,$fff
- dc.w $1b8,$fff
- dc.w $1ba,$fff
- dc.w $1bc,$fff
- dc.w $1be,$fff
-
- dc.w $196,$fff
-
- dc.w $d701,$ff00,$186,$666,$196,$999
- dc.w $d901,$ff00,$186,$777,$196,$bbb
- dc.w $db01,$ff00,$186,$888,$196,$fff
-
-
- dc.w $ffe1,$fffe ; wait for end of ntsc screen
-
- dc.w $2201,$ff00,$186,$888,$196,$fff
- dc.w $2401,$ff00,$186,$777,$196,$bbb
- dc.w $2601,$ff00,$186,$666,$196,$999
- dc.w $2701,$ff00,$190,0
-
- dc.w $3001,$ff00 ; wait for end of pal screen
- dc.w $9c,$8010 ; irq set bits - restart vblank
- dc.w $ffff,$fffe ; end of copper list
-
- glib: dc.b "graphics.library",0
- even
- dlib: dc.b "dos.library",0
-
- tall equ 10
- wide: equ 44
- wide2: equ 94
-
- scrsize: equ 40*100*5*2
-
- pagenum: dc.l 0
-
- mid: dc.w 0
- midadd: dc.l 0
- old_copper: dc.l 0
- graphics: dc.l 0
- dos: dc.l 0
-
- newscr: dc.l 0
- flag: dc.l 0
- line: dc.l 0
- scroll: dc.l 0
- delay: dc.l 0
- delay2: dc.l 0
- delay3: dc.l 0
- x1: dc.l wide-4
- x2: dc.l 0
- page: dc.l 0
- waiting: dc.l 0
- height: dc.l 0
-
- equ1_ptr: dc.l 0
- equ2_ptr: dc.l 0
- equ3_ptr: dc.l 0
- equ4_ptr: dc.l 0
-
- scr1: dc.l 0
- scr2: dc.l 0
-
- blank: dc.l frame+64
-
- logo: incbin "music3.logo"
- frame: incbin "music3.frame"
- scrollpic: incbin "music3.scroll"
- dcb.b 80*10,0
-
- man1: incbin "music3.man1"
- incbin "music3.man2"
- incbin "music3.man3"
- incbin "music3.man4"
- incbin "music3.man3"
- incbin "music3.man2"
-
- mannum: dc.l 0
- scrup: dc.l 0
-
- calc: dc.l -1
- finished: dc.l 0
- finding: dc.l 0
-
- screen2: dc.l 0
-
- equals: dcb.b 13,0
- fades: dcb.b 13,0
-
- maxequal: dc.l 0
- minequal: dc.l 0
- divequal: equ $100
-
- dff0a0: dc.l 0
- dff0b0: dc.l 0
- dff0c0: dc.l 0
- dff0d0: dc.l 0
- dff000: dc.l 0
-
- waste: dcb.b 100,0
-
- unpackcolour EQU $dff184
-
-
- scrolltext_ptr: dc.l scrolltext
-
- scrolltext:
- dc.b "WELCOME TO LSD SUPREME MUSIC 2",0
- dc.b " ",0
- dc.b " TEN UNRELEASED TRACKS BY LSD ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " CODING BY SHAGRATT. ",0
- dc.b " GRAPHICS BY PARASITE ",0
- dc.b " AND VARIOUS SOFTWARE HOUSES. ",0
- dc.b " THIS FONT BY SHARE AND ENJOY ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " THIS WAS ORIGINALLY GOING TO ",0
- dc.b " BE RELEASED AT THE ANARCHY ",0
- dc.b " WINTER CONFERANCE 23/02/91 ",0
- dc.b " HOWEVER DUE TO OVER 10 POWER ",0
- dc.b " FAILURES, CAUSED BY RUNNING ",0
- dc.b " MORE THAN 35 MACHINES, ",0
- dc.b " MONITORS ETC. FROM ONLY ",0
- dc.b " THREE SOCKETS IT`S RELEASE ",0
- dc.b " WAS DELAYED UNTIL 27/02/91. ",0
- dc.b " ",0
- dc.b " LSD SUPREME MUSIC 3 IS ALSO ",0
- dc.b " OUT NOW (RELEASED AT THE ",0
- dc.b " CONFERANCE). ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " NOW FOR SOME SONG INFO... ",0
- dc.b " ",0
- dc.b " F1 - ADAMSKI MIX BY MUB. ",0
- dc.b " A REMIX OF THE TRACK THAT ",0
- dc.b " APPEARED ON LSD SUPREME MUSIC",0
- dc.b " DISK ONE. ",0
- dc.b " ",0
- dc.b " F2 - FROM OUT OF NOWHERE ",0
- dc.b " BY DIGGER. ",0
- dc.b " A CONVERSION OF THE CLASSIC ",0
- dc.b " SONG BY FAITH NO MORE. ",0
- dc.b " ",0
- dc.b " F3 - HEARTBREAK BY DIGGER. ",0
- dc.b " A CONVERSION, ORIGINALLY BY ",0
- dc.b " DEF LEPPARD. ",0
- dc.b " ",0
- dc.b " F4 - ISRAEL BY DIGGER. ",0
- dc.b "A CONVERSION ORIGANALLY A HIT ",0
- dc.b "FOR SIOUXSIE AND THE BANSHEES ",0
- dc.b " IN 1980. ",0
- dc.b " ",0
- dc.b " F5 - ITCHY SCRATCH BY MUB. ",0
- dc.b " AN ORIGINAL MIX SAMPLED FROM ",0
- dc.b " VARIOUS CD`s. ",0
- dc.b " ",0
- dc.b "F6 - MIDNIGHT DREAMS BY SPIRIT",0
- dc.b " AN ORIGINAL COMPOSITION. ",0
- dc.b " ",0
- dc.b " F7 - PHANTOM OF THE OPERA ",0
- dc.b " BY DIGGER. ",0
- dc.b " A CONVERSION OF A CLASSIC ",0
- dc.b " TRACK FROM IRON MAIDEN, ",0
- dc.b " THIS IS OVER EIGHT MINUETS ",0
- dc.b " LONG WITH 105 PATTERNS. ",0
- dc.b " ",0
- dc.b "F8 - SPEED DREAMER BY SPIRIT. ",0
- dc.b " AN ORIGINAL COMPOSITION. ",0
- dc.b " ",0
- dc.b " F9 - SWITCH 625 BY DIGGER. ",0
- dc.b " A CONVERSION, ORIGINALLY BY ",0
- dc.b "DEF LEPPARD, THIS SONG FOLLOWS",0
- dc.b " HEARTBREAK ON THE ALBUM. ",0
- dc.b " ",0
- dc.b " F10 - WALKING IN SPACE ",0
- dc.b " BY SPIRIT. ",0
- dc.b " A ORIGINAL COMPOSITION ",0
- dc.b " USING SAMPLES FROM THE GAME ",0
- dc.b " `THE KULT'. ",0
- dc.b " ",0
- dc.b " THE LSD MEMBERS AT THE PARTY ",0
- dc.b " WHERE: ",0
- dc.b " ",0
- dc.b " SHAGRATT - CODER ",0
- dc.b " VOODOO CHILD - CODER ",0
- dc.b " MONTY PYTHON - CODER ",0
- dc.b " MAXIMAN - CODER ",0
- dc.b " MUB - MUSICIAN ",0
- dc.b "PARASITE - SWAPPER/MANAGEMENT ",0
- dc.b " SIDEWINDER - SWAPPER/DOCS ",0
- dc.b " ",0
- dc.b " AND WE ALSO HAD TWO GUESTS: ",0
- dc.b " ",0
- dc.b " SPIRIT AND GARY ",0
- dc.b " ",0
- dc.b " AND THE GUYS WHO COULDN'T ",0
- dc.b " MAKE IT WHERE: ",0
- dc.b " ",0
- dc.b " REBEL - MANAGEMENT ",0
- dc.b " PAW - SWAPPER/VIDEOS ",0
- dc.b " DIGGER - MUSICIAN ",0
- dc.b " MARL - CODER ",0
- dc.b " OSSWALD - CODER ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " PARASITE AND SHAGRATT SEND ",0
- dc.b " GREETINGS TO THE FOLLING COOL",0
- dc.b " GUYS AND GROUPS: ",0
- dc.b " ",0
- dc.b " POD & KID VIDEO OF SLIPSTREAM",0
- dc.b " TRIPWIRE & OPUS OF EQUINOX ",0
- dc.b " COSY & MAGNETIC FIELDS ",0
- dc.b " MOLE & ANARCHY ",0
- dc.b "LIGHTFOOT & THE MIGHTY DRUIDS ",0
- dc.b " TURMOIL & SCOOPEX UK ",0
- dc.b " TAURUS & XTC ",0
- dc.b " INDEX & RELAY ",0
- dc.b " AWOL & PENDLE EUROPA ",0
- dc.b " POLTERGEIST & CYRUS",0
- dc.b " NASTY BOY, GARY",0
- dc.b " SPIRIT, CYLON",0
- dc.b " ",0
- dc.b " ...AND ALL OUR FRIENDS AND ",0
- dc.b " CONTACTS EVERYWHERE. ",0
- dc.b " ",0
- dc.b " ",0
- dc.b "LOOK OUT FOR THE FOLLOWING LSD",0
- dc.b " RELEASES, OUT NOW:",0
- dc.b " ",0
- dc.b " FUNKY PIZZA INTRO",0
- dc.b " TERRY FUCKWITT/FAST INTRO",0
- dc.b " JOKE INTRO 2",0
- dc.b " LSD SUPREME MUSIC 3",0
- dc.b " ",0
- dc.b " ",0
- dc.b " EVERYONE HERE IS FEELING ",0
- dc.b "SORRY FOR COLIN IN BIRMINGHAM ",0
- dc.b " FOR CATCHING MAD LAMERS ",0
- dc.b " DISEASE AND NOT SENDING GARY ",0
- dc.b "THE DISKS. DON`T WORK TO HARD!",0
- dc.b " ",0
- dc.b " ",0
- dc.b "THE CHARACTERS YOU CAN SEE",0
- dc.b "ABOVE ARE (FROM LEFT TO RIGHT)",0
- dc.b " ",0
- dc.b " RUFF - RUFF & REDDY ",0
- dc.b " TERRY - TERRYS BIG ADVENTURE ",0
- dc.b " DIZZY - CODEMASTER GAMES ",0
- dc.b " WONDERBOY - SUPER WONDERBOY ",0
- dc.b " BOMBJACK - BOMBJACK ",0
- dc.b " FLIPPIT - FLIPPIT & MAGNOSE ",0
- dc.b " EDD THE DUCK - EDD THE DUCK ",0
- dc.b " BUB - BUBBLE BOBBLE ",0
- dc.b " KID GLOVES - KID GLOVES ",0
- dc.b " BOY - RAINBOW ISLANDS ",0
- dc.b "A GIANA SISTER - GIANA SISTERS",0
- dc.b " HERBIE STONE - DUGGER ",0
- dc.b " SWICHBLADE - SWITCHBLADE ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b "IF YOU WANT TO CONTACT LSD FOR",0
- dc.b " SWAPPING ETC. WRITE TO: ",0
- dc.b " ",0
- dc.b "PARASITE, 18 BROCKLESBY CLOSE,",0
- dc.b "GAINSBOROUGH LINCS. DN21 1TT. ",0
- dc.b " FOR A 100% REPLY! ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ON NO, ITS ALL GOING TO WRAP!",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b " ",0
- dc.b 0,0
- even
-
- use_equals: dc.l 0
- equalsource: dc.l $ffffffff
-
- font: incbin "sae.wrd"
-
- cheat:
- dc.l 0
- dc.l 0
- dc.l $40
- dc.l $15
- dc.l 0
- dc.l 0
- dc.l $10
- dc.l 0
- dc.l 0
- dc.l 0
-
-
-
- mc1a: incbin "mchar1a.bin"
- incbin "mchar1b.bin"
- incbin "mchar2a.bin"
- incbin "mchar2b.bin"
- incbin "mchar3a.bin"
- incbin "mchar3b.bin"
- incbin "mchar4a.bin"
- incbin "mchar4b.bin"
- incbin "mchar5a.bin"
- incbin "mchar5b.bin"
- incbin "mchar6a.bin"
- incbin "mchar6b.bin"
- incbin "mchar7a.bin"
- incbin "mchar7b.bin"
- incbin "mchar8a.bin"
- incbin "mchar8b.bin"
- incbin "mchar9a.bin"
- incbin "mchar9b.bin"
- incbin "mchar10a.bin"
- incbin "mchar10b.bin"
- incbin "mchar11a.bin"
- incbin "mchar11b.bin"
- incbin "mchar12a.bin"
- incbin "mchar12b.bin"
- incbin "mchar13a.bin"
- incbin "mchar13b.bin"
- mt_data:
- dc.l $19cce7a2
- dcb.b 250*1000,0
- End
-